Several system management software applications require the availability of a comprehensive knowledge base that contains information on software products, which may be currently installed and running on a plurality of data processing systems. For example license manager products like IBM Tivoli License Manager (ITLM) needs a knowledge base (i.e. a catalog) to identify the products runnning on the managed systems and correctly metering and invoicing the use of such products. Normally this knowledge base is in the form of a catalog which contains definitions of software products (e.g. product names and version) and the related signatures. The software catalog lists all the known products which can be found on the managed systems; each product can be identified by one or more executable modules indicative of its running. As an example, in the case of a License Manager product, a licensing agent working in the background detects the executable modules that have been launched; the licensing agent then identifies the corresponding products through the software catalog. This is done through the “use signature”, i.e. an indication that the product is currently running; normally it is a process. The catalog needs to be “populated” with the software identifications and the related signatures (including the “use signature”) and this is normally a costly activity. The term signature means any type of information that can be consumed by a license manager system to determine if a software product is installed or running on a system. Traditionally “use signatures” describe the environmental conditions that are present when the corresponding cataloged software entities are running. This could include the name of a process, or of the executable code that was invoked to initiate the process. A tool will search for a match to the signatures in catalog, on a periodic basis or through some other trigger mechanism and if a match is found a record of the use of the software is recorded along with all of the relevant data that is required to properly manage according to the pricing model that applies to that software. The problem with this approach is in the population and maintenance of the catalog. It is a tricky, tiresome, and time-consuming process to identify signatures for all of the possible software elements, differentiating between different releases also of the same piece of software.
According to known methods normally employed to create product-signature information, one or more of the following actions is performed:                information is directly collected from the software producer (internal development department or independent software vendor);        a technical person who is experienced in a specific software product can manually produce accurate product and signature definitions for that product, or at least for a specific version;        a technical person who is experienced on that software can obtain product definitions by direct inspection of data maintained by the operating system on computers where those products have been installed, then it is possible to manually create signatures for these products based on OS registry values or installed files or both;        a technical person uses software tools that harvest information from a computer where the software is installed, in order to partially automate the activities described above.        
All of the above methods have some drawbacks. The first two are only applicable to software products which are internally developed or to products for which in-depth knowledge is available. The other methods require visiting multiple computers where different versions or different maintenance levels of the same software product may be installed, as they may require different signatures. The cost of creating and maintaining the product-signature catalog with the above methods are often prohibitive, which results in incomplete and obsolete content.
In other words the software catalogs must be populated with the help of an operator having a good knowledge of the software products. This is normally accurate, but it's also a quite expensive process. Also it is not always completely reliable since a human intervention is required. An automated catalog population with use signature generation would be highly desirable.
It is an object of the present invention to provide a method and a system which alleviates the above drawbacks.